Moving Picture Experts Group (MPEG) by International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) and Video Coding Experts Group (VCEG), sometimes denoted Visual Coding Experts Group, by International Telecommunication Union (ITU) Telecommunication Standardization Sector (ITU-T) are currently jointly standardizing a Screen Content Coding (SCC) codec built on top of High Efficiency Video Coding (HEVC), also defined as ISO/IEC 23008-2 MPEG-H Part 2 and ITU-T H.265. HEVC is a block based video coding standard that exploits temporal and spatial prediction in order to accomplish efficient compression. A Coding Unit (CU) is a square block of sample values and can be further divided into Prediction Units (PUs) and Transform Units (TUs). The TU holds residual data that, during decoding, is added to a prediction that is performed in the block. The residual data consists of zero or more coefficients that are quantized using a quantization parameter (QP). A low QP value means that the quantization step is small, which will result in good visual quality but high bitrate. A high QP value means that the quantization step is large, which will result in bad visual quality but low bitrate.
HEVC includes several data structures for high level information and parameters. The Sequence Parameter Set (SPS) is a data structure that contains parameters and information that is valid at least for an entire sequence. The Picture Parameter Set (PPS) contains parameters and information that is valid at least for a picture. A picture is partitioned into one or more slices and the slice header contains parameters and information that is valid for one slice.
It is likely that the SCC codec will be expressed as a profile in an upcoming version of the HEVC specification. The SCC codec is specifically targeting applications in which the videos include a substantial amount of text and graphics, such as screen sharing and remote desktops. The current draft of the SCC codec includes several new tools that are specialized for this type of content; Intra Block Copy, Palette Mode and Adaptive Color Transform (ACT).
With ACT it is possible to transform residual data in the encoding process to a different color space that has improved decorrelation between the color channels and thereby can provide better compression efficiency. The process of transforming data of one or more blocks from one color space to another is called color transformation. A block for which color transformation has been done is denoted as a block that is color transformed or simply color transformed block. A particular transformation process is called color transform. When ACT is enabled, there is a flag for each block telling the decoder whether or not the residual data of that block should be color transformed before it is added to the prediction.
Uncompressed digital color video is typically represented as a series of pictures with three color components. The color components can also be called color channels. For each spatial position in each picture the sample, i.e. pixel, is represented by a triplet, in which each value in the triplet represents the magnitude of the corresponding color in that position. The colors are typically expressed with a fixed number of bits, such as 8 giving values 0-255 or 10, giving values 0-1023. The data structure that holds the color values for one color component is typically called a sample array.
The SCC codec is currently only defined for 4:4:4 color but it can be used with several different color formats, such as Luminance, Chroma Blue, Chroma Red (YCbCr) or Green, Blue, Red (GBR). When used with GBR, Green data is stored in the Y sample array, Blue data is stored in the Cb sample array and Red data is stored in the Cr sample array. GBR is the same thing as RGB but with a different order among the color components. Treating the Green component as the primary color component is beneficial from a coding efficiency point of view.
When ACT is applied to residual GBR data the colors should be transformed from a Green, Blue, Red representation to a Luminance, Chroma Orange, Chroma Green (YCoCg) representation in the encoder. In the decoder the GBR representation is retrieved from the YCoCg representation through the use of the following formula for lossless coding, i.e. when cu_transquant_bypass_flag is equal to 1:tmp=Y−(Cg>>1)Y=tmp+Cg Cb=tmp−(Co>>1)Cr=Cg+Co 
For lossy coding, i.e. when cu_transquant_bypass_flag is equal to 0, the following formula is used instead:tmp=Y−Cg Y=Y+Cg Cb=tmp−Co Cr=tmp+Co 
When ACT is used with GBR data, Luminance data is stored in the Y sample array, Chroma Green data is stored in the Cb sample array and Chroma Orange data is stored in the Cr sample array.
In HEVC, and in the current draft of the SCC codec, it is possible to change quantization parameter (QP) on CU level, The QP for luma (Y), Chroma Blue (Cb) and Chroma Red (Cr) can be set differently using parameters that applies for at least the entire slice, e.g. pps_cb_qp_offset, pps_cr_qp_offset, and slice_cr_qp_offset. When different QPs are used for different color components it is said that there is a QP offset. At high QP levels there is a fixed, i.e. predefined, QP offset defined to provide better visual quality of low bitrate video.
It is also possible to change the QP differences, i.e. QP offsets, between the color channels from one CU to the next CU using a feature called “CU adaptive chroma QP-offsets”. In this mode, the QP offset for each chroma channel can be selected per CU from up to six predefined values.
When ACT is applied there is a fixed, i.e. predefined, QP offset defined to compensate for that the color transform is not normalized. This means that the QP values for the three color channels for non-color-transformed blocks are defined as QP for luma Y=Qp′Y, QP for chroma Cb=Qp′Cb and QP for chroma Cr=Qp′Cr, whereas corresponding QP values for color transformed blocks are QP for luma Y=Qp′Y−5, QP for chroma Cb=Qp′Cb−5 and QP for chroma Cr=Qp′Cr−3, see equations 8-261 to 8-263 in section 8.6.2 Scaling and transformation process, page 165, in Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, Document: JCTVC-R1005-v3, High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 1, 18th Meeting: Saporo, JP, 30 Jun.-9 Jul. 2014.
There is still a need for improvement with regard to coding and determination of quantization parameters, and in particular in connection with color transformation.